package com.example.demo.config;

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.servlet.Filter;

/**
 * 类名：FilterConfig.java
 * 路径：com.example.demo.config.FilterConfig.java
 * 创建人：tanyp
 * 创建时间：2019/12/10 15:38
 * 功能：配置过滤器
 * 修改人：
 * 修改时间：
 * 修改备注：
 */
@Configuration
public class FilterConfig {

    /**
     * 方法名：someFilterRegistration
     * 功能：注册过滤器
     * 创建人：tanyp
     * 创建时间：2019/12/10 15:38
     * 入参：
     * 出参：
     * 修改人：
     * 修改时间：
     * 修改备注：
     */
    @Bean
    public FilterRegistrationBean someFilterRegistration() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(replaceStreamFilter());
        registration.addUrlPatterns("/*");
        registration.setName("filter");
        return registration;
    }

    /**
     * 方法名：replaceStreamFilter
     * 功能：实例化StreamFilter
     * 创建人：tanyp
     * 创建时间：2019/12/10 15:38
     * 入参：
     * 出参：
     * 修改人：
     * 修改时间：
     * 修改备注：
     */
    @Bean(name = "requestWrapperFilter")
    public Filter replaceStreamFilter() {
        return new RequestWrapperFilter();
    }
}
